package com.mingren.model.enums;

import cn.hutool.core.util.ObjectUtil;
import lombok.Getter;

/**
 * @author 曹宏福
 * @version 1.0
 * 对于用户角色这样值的数量有限的、可枚举的字段，
 * 最好定义一个枚举类，便于在项目中获取值、减少枚举值输入错误的情况。
 */
@Getter
public enum UserRoleEnum {
    USER("用户", "user"),
    ADMIN("管理员", "admin");

    //设置枚举字段
    private final String text;
    private final String value;

    /**
     * 构造函数
     *
     * @param text
     * @param value
     */
    UserRoleEnum(String text, String value) {
        this.text = text;
        this.value = value;
    }

    /**
     * 根据value值获取枚举
     * @param value
     * @return 枚举值
     */
    public static UserRoleEnum getEnumByValue(String value) {
        if (ObjectUtil.isEmpty(value)) {
            return null;
        }
        for (UserRoleEnum userRoleEnum : UserRoleEnum.values()) {
            if (value.equals(userRoleEnum.value)) {
                return userRoleEnum;
            }
        }
        return null;
    }
}
